ПолеПамятки.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 
(*~\Глагол\Отделы\Поле~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                          ОТДЕЛ ПолеПамятки;
(*============================================================================* 
 * НАЗНАЧЕНИЕ: поле для Памятки
 *============================================================================*)
ИСПОЛЬЗУЕТ
  Надел,
  Поле,
  Памятка,
  СтрокиПамятки,
  Ввод ИЗ "..\Обмен\";

(******************************************************************************)
ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка);
(* получить и обработать управляющие послания *)
ПЕР
  код:ЦЕЛ;
УКАЗ
  ДЛЯ посылка ВИДА
  | Ввод.ОтКлавиш:
      код:=посылка.код;
      посылка.код:=0; (* скорее всего отработаем посылку *)
      ВЫБРАТЬ код ИЗ
      | 1BH: поле.состояние:=Поле.сОтмена (* Esc *)
      | 79H: поле.состояние:=Поле.сДалее  (* F10 *)
      | 0DH: поле.состояние:=Поле.сДалее  (* Ent *)
      ИНАЧЕ
        посылка.код:=код
      КОН
  | Ввод.ОтМышки:
      ЕСЛИ НЕ (Ввод.прокрут В посылка.события) ТО
        поле.состояние:=Поле.сДалее;
        посылка.отработана:=ВКЛ
      КОН
  ИНАЧЕ
  КОН             
КОН Приём;

(******************************************************************************)
ЗАДАЧА Выполнить-(холст:Надел.Доступ; памятка:Памятка.Доступ; окружение:Поле.Доступ):ЦЕЛ;
(* Выбрать строку Памятки *)
ПЕР
  поле:Поле.Доступ;
  строки:СтрокиПамятки.Доступ;
  верх,лево,колонок,строк:ЦЕЛ;
УКАЗ
  верх:=холст.вс+1;
  лево:=холст.лк;
  строк:=окружение.нс-верх+1;
  ЕСЛИ строк > памятка.строк+2 ТО
    строк:=памятка.строк+2
  КОН;
  колонок:=холст.пк-лево+1;
  поле:=Поле.Создать(верх,лево,строк,колонок,ПУСТО,ОТКЛ,Приём);
  строки:=СтрокиПамятки.Создать(0,0,строк,колонок,памятка);
  Поле.ДобавитьНадел(поле,строки);
  Поле.Рисовать(поле);
  ПОВТОРЯТЬ
    Поле.Проверить(поле)
  ДО поле.состояние # Поле.сРабота;
  Поле.Рисовать(окружение);
  ЕСЛИ поле.состояние = Поле.сДалее ТО
    ВОЗВРАТ строки.текущая
  ИНАЧЕ
    ВОЗВРАТ -1
  КОН
КОН Выполнить;

КОН ПолеПамятки.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы